package cn.kgc.springboot;

import cn.kgc.springboot.entity.User;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;

/*
*  当前类是被@SpringBootApplication注解修饰的类,
*  则当前类是springboot工程的启动类   运行springboot项目只需要运行该类中的main即可
*  启动类类名随意  只要符合标识符的命名规范即可   ,一般启动类的名字和项目名保持一致   xxxApplication
*
*  springboot项目在启动时会自动进行包扫描  默认扫描路径  启动类所在包及其子包
*  默认的扫描机制 得益于@SpringBootApplication注解
*  该注解时一个组合注解
*      @SpringBootConfiguration        springboot配置类
       @EnableAutoConfiguration        开启自动配置   包括第三方组件
       @ComponentScan        包扫描注解
 * */
@SpringBootApplication
@MapperScan("cn.kgc.springboot.mapper")  //  持久层接口扫描  生成代理对象纳入spring容器管理
public class SpringbootDay0101Application {

	public static void main(String[] args) {
		// spring容器的启动
		ConfigurableApplicationContext applicationContext = SpringApplication.run(SpringbootDay0101Application.class, args);
		User user = applicationContext.getBean("user", User.class);
		System.out.println("user = " + user);
	}


	@Bean
	public  User  user(){
		User user = new User();
		user.setId(1);
		user.setUsername("jack");
		return  user;
	}

}
